// app.js
App({
  onLaunch() {
    console.log('虚拟换衣小程序启动')

    // 初始化API地址
    this.globalData.baseUrl = this.getApiBaseUrl()
    console.log('API基础地址:', this.globalData.baseUrl)

    // 检查登录状态
    this.checkLoginStatus()

    // 获取系统信息
    this.getSystemInfo()
  },

  onShow() {
    console.log('小程序显示')
  },

  onHide() {
    console.log('小程序隐藏')
  },

  onError(msg) {
    console.error('小程序错误:', msg)
  },

  // 检查登录状态
  checkLoginStatus() {
    const auth = require('./utils/auth.js')
    
    if (auth.isLoggedIn()) {
      this.globalData.isLogin = true
      this.globalData.token = auth.getToken()
      this.globalData.userInfo = auth.getUserInfo()
      console.log('用户已登录:', this.globalData.userInfo)
    } else {
      this.globalData.isLogin = false
      this.globalData.token = ''
      this.globalData.userInfo = null
      console.log('用户未登录')
    }
  },

  // 检查页面是否需要登录
  checkPageAuth(currentPage) {
    // 不需要登录的页面列表（允许游客访问）
    const noAuthPages = [
      'pages/login/login',
      'pages/index/index',
      'pages/products/products'
    ]

    // 如果当前页面不需要登录，直接返回
    if (noAuthPages.includes(currentPage)) {
      return true
    }

    // 检查是否已登录
    if (!this.globalData.isLogin) {
      console.log('用户未登录，跳转到登录页面')
      wx.reLaunch({
        url: '/pages/login/login'
      })
      return false
    }

    return true
  },

  // 退出登录
  logout() {
    const auth = require('./utils/auth.js')
    auth.logout()
    console.log('用户已退出登录')
  },

  // 获取系统信息
  getSystemInfo() {
    wx.getSystemInfo({
      success: (res) => {
        this.globalData.systemInfo = res
        console.log('系统信息:', res)
      }
    })
  },

  // 获取API基础地址
  getApiBaseUrl() {
    // 可以根据环境或配置动态设置API地址
    try {
      // 开发环境
      if (wx.getSystemInfoSync().platform === 'devtools') {
        return 'https://skyc.xryai.cn/api';
      }
    } catch (error) {
      console.warn('获取系统信息失败，使用默认开发环境地址');
      return 'https://skyc.xryai.cn/api';
    }

    // 生产环境 - 请根据实际后端地址修改
    return 'https://skyc.xryai.cn/api';
  },

  // 全局数据
  globalData: {
    isLogin: false,
    token: '',
    userInfo: null,
    systemInfo: null,
    // 后端API地址 - 在onLaunch中初始化
    baseUrl: 'https://skyc.xryai.cn/api', // 默认值
    userEnergy: 85 // 用户算力
  },

  // 工具方法
  utils: {
    // 显示提示信息
    showToast(title, icon = 'none') {
      wx.showToast({
        title,
        icon,
        duration: 2000
      })
    },

    // 显示加载中
    showLoading(title = '加载中...') {
      wx.showLoading({
        title,
        mask: true
      })
    },

    // 隐藏加载
    hideLoading() {
      wx.hideLoading()
    },

    // 网络请求
    request(options) {
      const app = getApp()
      
      return new Promise((resolve, reject) => {
        wx.request({
          url: app.globalData.baseUrl + options.url,
          method: options.method || 'GET',
          data: options.data || {},
          header: {
            'Content-Type': 'application/json',
            'Authorization': app.globalData.token ? `Bearer ${app.globalData.token}` : '',
            ...options.header
          },
          success: (res) => {
            if (res.statusCode === 200) {
              // 统一处理后端API响应格式 {code: 1, msg: "", data: {}}
              if (res.data && (res.data.code === 1 || res.data.success)) {
                resolve(res.data)
              } else {
                resolve(res.data || res)
              }
            } else {
              reject(res)
              app.utils.showToast('网络请求失败')
            }
          },
          fail: (err) => {
            reject(err)
            app.utils.showToast('网络连接失败')
          }
        })
      })
    }
  }
})
